1. Field
The disclosure relates generally to determining context related content and, more specifically, to a method, apparatus and program product for determining program components.
2. Description of the Related Art
Industry trends show that enterprises are adopting model-driven development, resulting in the emergence of products offering analysis and design frameworks for model-driven development. These frameworks are primarily based on industry standards such as Unified Modeling Language (UML), Meta-Object Facility (MOF), and Common Warehouse Meta-model (CWM) available from the Object Management Group (OMG.org), which target vertical industries, such as insurance and banking. Tools are also available to provide needed infrastructure, with added tools and services to capture, maintain, and manage standard-based complex models and make the models available to an entire enterprise for accessibility, asset re-use and customization of the specific enterprise projects.
A problem with asset re-use in software project development is that without adequately delimiting the scope of a search, a meaningful sub-set of reusable artifacts from the entire asset base may be difficult or impossible to obtain. A software developer or a consultant on an engagement works in a specific context. The context is provided by the scope of the project and by the functional and non-functional requirements for that project. The scope of a project may be determined by the industry such as insurance, or finance, and by the selected architectural style, such as service-oriented architecture (SOA), client/server, or distributed, as well as the specific business functionality to be delivered.
A software developer would like to be directed only to the content relevant to the particular context. For example, in an insurance project, a functional requirement of creating a claims system can be mapped to reusable software assets, such as an insurance Unified Modeling Language (UML) model previously designed for a claims system. A nonfunctional requirement, such as a transactional claims process, can map to another type of reusable software asset, such as a software pattern to help make consistent architectural decisions. There has typically been no reasonable mechanism to determine the relevant content required for developing particular software in a consistent manner, therefore allowing for better consumption of reusable assets, such as models and patterns.